﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SCEM.DTO;

namespace SCEM.DataLayer
{
    public interface ICondicaoVendaDAO : IDAO<CondicaoVenda>
    {
        /// <summary>
        /// Recupera todas as condições de venda para um determinado produto.
        /// </summary>
        /// <param name="idProduto">A identificação do produto.</param>
        /// <returns>Uma lista contendo todas as condições de vendas associadas ao produto ou <code>null</code> caso o produto não possa 
        /// ser localizado ou ocorra um erro.</returns>
        List<CondicaoVendaDTO> GetAll(string idProduto);

        /// <summary>
        /// Recupera a condição de venda de determinado produto em um fornecedor específico.
        /// </summary>
        /// <param name="idProduto">A identificação do produto.</param>
        /// <param name="idFornecedor">A identificação do fornecedor.</param>
        /// <returns>A condição de venda correspondente caso ela exista ou <code>null</code> caso ela não possa ser localizada.</returns>
        CondicaoVendaDTO Get(string idProduto, string idFornecedor);

        /// <summary>
        /// Apaga a condição de venda de determinado produto em um fornecedor específico do banco de dados.
        /// </summary>
        /// <param name="idProduto">A identificação do produto.</param>
        /// <param name="idFornecedor">A identificação do fornecedor.</param>
        /// <returns><code>true</code> em caso de sucesso, <code>false</code> caso contrário.</returns>
        bool Delete(string idProduto, string idFornecedor);
    }
}
